The present invention relates generally to the field of data warehousing, and more particularly to enhancement of synopsis tables which are used to help in efficient access of databases (for example, relational databases). Conventional synopsis tables typically include synopsis table records, where each synopsis table record corresponds to a “block” of records in the corresponding database and includes information such as: (i) minimum value occurring in each field in the corresponding block; (ii) maximum value occurring in each field of the corresponding block; and/or (iii) Bloom filter related data (for example, a Bloom filter value) for the corresponding block. However, none of the foregoing types of summary data should be considered as required in order to have a “synopsis table,” as that term is used herein.
A synopsis table is herein defined to be any auxiliary summary table corresponding to a database that facilitates finding data in the database. Some conventional synopsis tables include the minimum (MIN) and maximum (MAX) values present in columns of the main table, aggregated over a block of rows (for example 1024 rows as used in some conventional database systems). There is a row in the synopsis table for each “block” in the main table, but the number of database records in a block can vary from block to block, at least in some conventional synopsis table applications. “Block” is hereby defined to mean a set of database records that are grouped together for purposes of making a synopsis table. In some synopsis table applications, “blocks” are referred to by other names, such as “pages.” Block definition refers to both the process of determining which database records are to be grouped together to make the blocks for a synopsis table, and to the resulting correspondence between database records and blocks.
Conventional synopsis tables are dynamically maintained in the sense that when rows are inserted or deleted in the main table (in some conventional database products, a row in a database table is referred to as a record), then the synopsis table is automatically (see definition in Definitions sub-section below) updated to reflect the addition and/or deletion of data in the database table with which the synopsis table corresponds.
Conventional data warehouse (DW) systems have massive tables (for example, tables structured as relational databases) that require large amounts of data to be read from them in order to answer analytical queries. Defining and maintaining traditional B-Tree or bit map indexes, and using these to answer queries, is a conventional solution used to help in efficient access of these massive tables. One conventional method is the use of synopsis tables and zone maps, which are used in some conventional DW systems. Synopsis tables address issues with administration and maintenance costs. As used herein, the terms “synopsis table” and “zone map” are used interchangeably, unless an explicit difference is called out.